Document printing is a familiar task to just about anyone who has worked with a computer. Many computer users have had the experience (whether they recognized it or not) of requesting document printing and then having to wait while, somewhere in the print path, the document was rasterized (i.e., placed in the format required for the printer marking engine). For inkjet and other low-cost printers, the rasterization process is typically performed on the user's computer, and may cause a noticeable slowdown in computer response while rasterization is proceeding. For most other printers, the user's computer generates a Page Description Language (PDL)-format print file, such as a PostScript file. The printer interprets the PDL-formatted data and rasterizes it. In PDL-input devices, depending on page complexity and the relative speeds of the printer's onboard renderer and marking engine, a noticeable pause may be detected between when one page has finished printing and the next page is begun.
Several patents have been granted based on a parallel-print-processing approach, including U.S. Pat. No. 5,333,246 (the '246 patent), issued to Nagasaka on Jul. 26, 1994, and entitled “Page-Description Language Interpreter for a Parallel-Processing System”, and U.S. Pat. No. 5,987,226 (the '226 patent), issued to Ishikawa et al. on Nov. 16, 1999, and entitled “Printing System and Method”. These patents apply traditional parallel-computing concepts to print processing, in essence parsing out portions of a print job for parallel rasterization by multiple networked processors, collecting the rasterized portions returned from the parallel processors into a common raster file, and finally submitting the assembled raster file to the printer. Both the '246 and '226 patents deal with a variety of difficulties that must be addressed to make such a system work reliably: how to decide which parts of a print page can be rasterized separate from other parts of the print page, in order to segregate sections of PDL data that can be rasterized in parallel; detection of available processors and their capabilities; resource distribution to the distributed processors; inter-processor communication protocols; centralized print job management; and scheduling of print data communications between the processors.
Although parallel processing has many applications to which it is ideally suited, those applications (e.g., weather prediction, complex simulations) are generally orders of magnitude more complex than document printing. All of the issues that must be solved for parallel print processing are capable of solution. But for most network configurations it is questionable as to whether the increased print processing software size and complexity in all processing nodes, possibility of errors in partitioning and reassembly, and increased network traffic due to multiple back-and-forth print data transfers across the network are worth the speed benefit gained.